﻿#pragma warning(disable: 4996)
#include<stdio.h>

//int main()
//
//{
//	int a, b, c;
//	printf("请输入两个正整数（空格隔开）：");
//
//	scanf("%d %d",&a,&b);
//	
//	while (b != 0)
//
//	{
//
//		int c = a % b;
//
//		a = b;
//		b = c;
//
//	}
//
//	printf("这两个数的最大公约数为：%d\n", a);
//
//	return 0;
//
//}


//【题目内容】
//打印1000年到2000年之间的闰年
//我写的Switch语句写法。有问题。。。。。。。。。

//int main()
//{
//	int a = 0, b=0,c = 0,d=0;
//	printf("请输入任意一个年份:");
//	scanf("%d", &a);
//	switch (c=a%4)
//	{
//	case(0):
//		switch (b = a % 100)
//		{
//		case(0):
//			printf("不是闰年");
//			break;
//		default:
//			printf("是闰年");
//			break;
//		}
//		break;
//	}
//	switch (d = a % 400)
//	{
//	case(0):
//		printf("是闰年");
//		break;
//	default:
//		printf("不是闰年");
//		break;
//	}
//	return 0;
//}

//最为合适的if语句写法。
/*int main() {
    int year;

    printf("请输入任意一个年份: ");
    scanf("%d", &year);

    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
        printf("是闰年\n");
    }
    else {
        printf("不是闰年\n");
    }

    return 0;
}*/

//AI写的Switch语句写法。

//int main() {
//    int year;
//
//    printf("请输入任意一个年份: ");
//    scanf("%d", &year);
//
//    switch (year % 400) // 首先检查是否能被400整除
//    {  
//    case 0:  // 如果能被400整除，肯定是闰年
//        printf("是闰年\n");
//        break;
//    default:
//        switch (year % 100) // 如果不能被400整除，再检查是否能被100整除
//        {
//        case 0:  // 如果能被100整除，但不能被400整除，不是闰年
//            printf("不是闰年\n");
//            break;
//        default:
//            switch (year % 4) {  // 如果不能被100整除，再检查是否能被4整除
//            case 0:  // 如果能被4整除，是闰年
//                printf("是闰年\n");
//                break;
//            default:  // 如果不能被4整除，不是闰年
//                printf("不是闰年\n");
//                break;
//            }
//        }
//    }
//
//    return 0;
//}

//下面代码的结果是什么？（ ）
//int sum(int a)
//{
//    int c = 0;
//    static int b = 3;//主要考察static，这里它的作用是会使用上一次计算得到的b值，而不是b值还是3.
//    c += 1;
//    b += 2;
//    return (a + b + c);
//}
//int main()
//{
//    int i;
//    int a = 2;
//    for (i = 0; i < 5; i++)
//    {
//        printf("%d,", sum(a));
//    }
//}
/*答案解析：

  本题主要考察static修饰局部变量的特性，static修饰局部变量，该变量不会随函数的结束而消失，并且只在第一次调用时进行初始化，后序调用该函数时，使用的都是上次结束前该变量的值。

  第一次循环：a=2 b=5 c=1 a+b+c=8

  第二次循环：a=2 b=7 c=1 a+b+c=10

  第二次循环：a=2 b=9 c=1 a+b+c=12

  第二次循环：a=2 b=11 c=1 a+b+c=14

  第二次循环：a=2 b=13 c=1 a+b+c=16*/


/*【题目内容】

打印1000年到2000年之间的闰年*/

//int main()
//{
//    int num = 0;
//    for (num = 1000; num <=2000; num++)
//    {
//        if((num%4==0&&num%100!=0)||(num%400==0))
//        printf("%d\n", num);
//        
//    }
//
//
//    return 0;
//}


/*【题目内容】

写代码将三个整数数按从大到小输出。

例如：

输入：2 3 1

输出：3 2 1*/

//int main()
//{
//    int a = 0;
//    int b = 0;
//    int c = 0;
//    int max = 0;//设置第三者用于交换两个数
//    printf("请输入三个整数(空格隔开)：");
//    //输入
//    scanf("%d %d %d", &a, &b, &c);
//    if (a < b)//进行大小比较
//    {
//        max = b;
//        b = a;
//        a = max;//交换a和b
//    }
//    if (a < c)
//    {
//        max = c;
//        c = a;
//        a = max;//交换a和c
//    }
//    if (b < c)
//    {
//        max = c;
//        c = b;
//        b = max;//交换b和c
//    }
//    //输出
//    printf("%d %d %d", a, b, c);
//    return 0;
//}

/*【题目内容】

写一个代码打印1-100之间所有3的倍数的数字*/

//int main()
//{
//    int num = 0;
//    for (num = 1; num <= 100; num++)
//    {
//        if (num % 3 == 0)
//            printf("%d\n", num);
//    }
//    return 0;
//}